﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using Domain;

namespace Data.Utils
{
    public static class MailTools
    {

        public static void EnviaMailRegisto(User user)
        {
            
            string ActivationLink = "http://localhost:2394/Account/Activate/" + user.Email + "/" + user.EmailKey;
            var message = new MailMessage()
            {
                Subject = "Active a sua conta Cantinho da cegonha",
                Body = @"<div style='text-align:middle;'></div><br/><div style=""text-align:middle;"">" + ActivationLink +"</div>",
                IsBodyHtml = true 
            };
            message.From = new MailAddress("mail@cantinhodacegonha.com", "Cantinho da cegonha");
            message.To.Add(user.Email);

            var client = new SmtpClient();
            client.Send(message);

            if (!string.IsNullOrEmpty(user.EmailParceiro))
                MailTools.EnviaMailCompanheiro(user.EmailParceiro, user.Nome, user.Email);
        }


        public static void EnviaMailRegistoTeste(string email,string emailkey)
        {
            User user = new User();
            user.EmailKey = emailkey;
            user.Email = email;
            user.Nome = "teste";
            user.EmailParceiro = "emailparceiro@sapo.pt";

            user.Filho.Add(new Filho{Nome="Tiago",DataNascimento=DateTime.Now,DataFormatada= DateTime.Now.ToShortDateString(),Activo=true,Genero="M"});
            user.Filho.Add(new Filho{Nome="Ana",DataNascimento=DateTime.Now,DataFormatada= DateTime.Now.ToShortDateString(),Activo=true,Genero="F"});
            
            string txtfilhos = " Queremos desde já desejar muita saúde e felicidades para ";

            if(user.Filho.Count>0)
            {
                if(user.Filho.Count >1) txtfilhos+="os seus filhos ";
                else txtfilhos+="o seu filho ";
                string sep = "";
                foreach (Filho item in user.Filho)
	            {
                    txtfilhos += sep + " <b>" + item.Nome +" (" +item.DataFormatada +")</b> ";
                    sep = " e ";
	            }
            }

            string ActivationLink = "http://localhost:2394/Account/Activate/" + user.Email + "/" + user.EmailKey;
            var message = new MailMessage()
            {
                Subject = "Active a sua conta Cantinho da cegonha",
                Body = "<p>Olá "+ user.Nome+", estamos muito gratos pela sua preferência.</p><p>"+txtfilhos+".</p><p>Está muito próximo de concluir o seu processo de registo, para tal basta seguir o link em baixo e fazer login no Cantinho da cegonha.</p><br/><div style='text-align:center;'></div><br/><div style='text-align:center;'>" + ActivationLink + "</div><br/><p>@Cantinho da cegonha, este email foi gerado automaticamente, por favor não responda.</p>",
                IsBodyHtml = true
            };
            message.From = new MailAddress("mail@cantinhodacegonha.com", "Cantinho da cegonha");
            message.To.Add(user.Email);

            var client = new SmtpClient();
            client.Send(message);

            if (!string.IsNullOrEmpty(user.EmailParceiro))
                MailTools.EnviaMailCompanheiro(user.EmailParceiro, user.Nome, user.Email);
        }

        public static void EnviaMailCompanheiro(string email_companheiro, string nome_user, string email_user)
        {
            //var message = new MailMessage("EMAIL_FROM", email)
            //{
            //    Subject = "Activate your account",
            //    Body = ActivationLink
            //};

            //var client = new SmtpClient("SERVER");
            //client.Credentials = new System.Net.NetworkCredential("USERNAME", "PASSWORD");
            //client.UseDefaultCredentials = false;

            //client.Send(message);
        }


        public static void EnviaMailNewsletter(string email)
        {

            var message = new MailMessage()
            {
                Subject = "Bem-vindo ao Cantinho da cegonha",
                Body = "<p>Olá, estamos muito gratos pela sua preferência.</p><br/><div style='text-align:center;'></div><br/><div style='text-align:center;'>Temos muito gosto em enviar-lhe semanalmente uma newsletter informativa.</div><br/><p>@Cantinho da cegonha, este email foi gerado automaticamente, por favor não responda.</p>",
                IsBodyHtml = true
            };
            message.From = new MailAddress("mail@cantinhodacegonha.com", "Cantinho da cegonha");
            message.To.Add(email);

            var client = new SmtpClient();
            client.Send(message);
        }

        public static string GenerateKey()
        {
            Guid emailKey = Guid.NewGuid();
            return emailKey.ToString();
        }
    }


}
